/**
 * 
 */
package com.itboye.allshengmedical.sci.packet.req;

import android.util.Log;

import com.itboye.allshengmedical.sci.HexHelper;

/**
 * @author 贝贝 346551990@qq.com
 * @date 2016-12-13
 */
public class SetTempReqPacket extends BaseReqPacket {

	public SetTempReqPacket() {
		this.setStart(new byte[] { (byte) 0x5A, (byte) 0xA5 });
		this.setLen((byte) 0x0B);
		this.setContent(new byte[] { (byte) 0x02, (byte) 0x00, (byte) 0x00,
				(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
				(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00 });

		this.calCheckBit();

		this.setEnd(new byte[] { (byte) 0x3E, (byte) 0xE3 });
	}

	/**
	 * 控制模块1
	 */
	public void setCtrlMod1(int temp) {
		byte ctrlMod = this.getContent(1);
		this.setContent(1, (byte) (ctrlMod | 0x01));
		if (temp < 0) {
			this.setContent(2, (byte) (0x01));
		} else {
			this.setContent(2, (byte) (0x00));
		}

		// 设置温度，温度单位未知
		byte[] byteTemp = HexHelper.change(temp);
		// TODO: 待检查转换是否正确
		this.setContent(3, byteTemp[1]);
		this.setContent(4, byteTemp[0]);
	}

	// byte[] change(int temp) {
	// byte[] src = new byte[4];
	// src[0] = (byte) (temp % 256);
	// src[1] = (byte) (temp / 256);
	// return src;
	// }

	/**
	 * 不控制模块1
	 */
	public void resetCtrlMod1() {
		byte ctrlMod = this.getContent(1);
		this.setContent(1, (byte) (ctrlMod & 0xFE));
	}

	/**
	 * 控制模块2
	 */
	public void setCtrlMod2(int temp) {
		byte ctrlMod = this.getContent(1);
		this.setContent(1, (byte) (ctrlMod | 0x02));

		if (temp < 0) {
			this.setContent(5, (byte) (0x01));
		} else {
			this.setContent(5, (byte) (0x00));
		}
		// 设置温度，温度单位未知
		byte[] byteTemp = HexHelper.intToBytes(temp);
		// TODO: 待检查转换是否正确
		this.setContent(6, byteTemp[1]);
		this.setContent(7, byteTemp[0]);
	}

	/**
	 * 不控制模块2
	 */
	public void resetCtrlMod2() {
		byte ctrlMod = this.getContent(1);
		this.setContent(2, (byte) (ctrlMod & 0xFD));
	}

	/**
	 * 控制热盖温度
	 */
	public void setCtrlHotCover(int temp) {
		byte ctrlMod = this.getContent(1);
		this.setContent(1, (byte) (ctrlMod | 0x04));

		if (temp < 0) {
			this.setContent(8, (byte) (0x01));
		} else {
			this.setContent(8, (byte) (0x00));
		}
		// 设置温度，温度单位未知
		byte[] byteTemp = HexHelper.intToBytes(temp);
		// TODO: 待检查转换是否正确
		this.setContent(9, byteTemp[1]);
		this.setContent(10, byteTemp[0]);
	}

	/**
	 * 不控制热盖温度
	 */
	public void resetCtrlHotCover() {
		byte ctrlMod = this.getContent(3);
		this.setContent(3, (byte) (ctrlMod & 0xFB));
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SetTempReqPacket setTempReqPacket = new SetTempReqPacket();
		setTempReqPacket.setCtrlMod1(10);
		System.out.println("" + setTempReqPacket.toString());
	}

}
